#include "mysyntaxhighlighter.h"
#include <QFont>
#include <QRegularExpression>



MySyntaxHighlighter::MySyntaxHighlighter(QObject *parent) : QSyntaxHighlighter(parent)
{

}

MySyntaxHighlighter::~MySyntaxHighlighter()
{

}

/*
 * 待解决的问题：正则表达式怎么来进行字符匹配的
 * 还有这些调用的API是什么：等待明天查阅官方文档
 * 在把文本高亮设置到textEdit中，我首先在mainwindow.h中设置mysyntax....类的对象的指针，再new出该对象实例但是显示出重载问题
 */
void MySyntaxHighlighter::highlightBlock(const QString &text)
{
    QTextCharFormat myFormat;
    myFormat.setFont(QFont("微软雅黑"));
    myFormat.setFontWeight(QFont::Bold);
    myFormat.setForeground(Qt::green);

    // 匹配world
    QString pattern = "\\bworld\\b";
    // 创建正则表达式
    QRegularExpression express(pattern);
    // 从索引0开始匹配
    int index = text.indexOf(express);
    while (index >= 0) {
        int matchLen = express.match(text, index).capturedLength();
        // 对匹配的字符设置高亮
        setFormat(index, matchLen, myFormat);
        index = text.indexOf(express, index + matchLen);
    }
}
